package com.fredia.terp.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 短信相关的工具类
 * 
 * @author : wangyong
 * @since : 2017年6月27日
 * @version : v0.0.1
 */
public class SMSUtils {
	/**
	 * 检测手机号有效性*
	 * 
	 * @param mobile
	 *            手机号码
	 * @return 是否有效
	 */
	public static final boolean isMobileNo(String mobile) {
		/*
		 * Pattern p =
		 * Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$");
		 * Matcher m = p.matcher(mobile); return m.matches();
		 */
		return true;
	}

	/**
	 * 检测手机号有效性*
	 * 
	 * @param mobile
	 *            手机号码
	 * @return 是否有效
	 */
	public static final boolean mobileNo(String mobile) {
		Pattern p = Pattern.compile("(1)\\d{10}$");
		Matcher m = p.matcher(mobile);
		return m.matches();
	}

	/**
	 * 生成短信验证码*
	 * 
	 * @param length
	 *            长度
	 * @return 指定长度的随机短信验证码
	 */
	public static final String randomSMSCode(int length) {
		boolean numberFlag = true;
		String retStr = "";
		String strTable = numberFlag ? "1234567890" : "1234567890abcdefghijkmnpqrstuvwxyz";
		int len = strTable.length();
		boolean bDone = true;
		do {
			retStr = "";
			int count = 0;
			for (int i = 0; i < length; i++) {
				double dblR = Math.random() * len;
				int intR = (int) Math.floor(dblR);
				char c = strTable.charAt(intR);
				if (('0' <= c) && (c <= '9')) {
					count++;
				}
				retStr += strTable.charAt(intR);
			}
			if (count >= 2) {
				bDone = false;
			}
		} while (bDone);
		return retStr;
	}

	/**
	 * 发送短信验证码*
	 * 
	 * @param mobile
	 *            手机号码
	 * @param code
	 *            验证码
	 * @return 是否发送成功
	 */
	public static final boolean sendCode(String mobile, String code) {

		// todo 这里实现短信发送功能

		return true;
	}
}
